<?php
    $db = mysqli_connect("localhost","root","123456","trash_recycling",3306);

    function insAndDelAndUpd($sql,$param){
//        使用全局变量，先声明:global
        global $db;
//        预编译
        $pre = $db->prepare($sql);
//        判断参数，有赋值没有就不赋值
        if($param!=null and count($param)>0){
//            参数绑定
            call_user_func_array(array($pre,'bind_param'),refVal($param));
        }
//        执行语句
        return $pre->execute();
    }

    function refVal($arr){
        $s = "";
        for ($i = 0;$i<count($arr);$i++){
            $s .= "s";
        }
        array_unshift($arr,$s);
        $refs = array();
        foreach ($arr as $k =>$v){
            $refs[$k] = &$arr[$k];
        }
        return $refs;
    }

    function selectList($sql,$param){
        //        使用全局变量，先声明:global
        global $db;
        $parametes=array();
        $results = array();
//        预编译
        $pre = $db->prepare($sql);
//        判断参数，有赋值没有就不赋值
        if($param!=null and count($param)>0){
//            参数绑定
            call_user_func_array(array($pre,'bind_param'),refVal($param));
        }
//        执行
        $pre->execute();
//        结果集
        $meta = $pre->result_metadata();
        while ($res = $meta->fetch_field()){
            $parametes[] = &$row[$res->name];
        }
        call_user_func_array(array($pre,'bind_result'),$parametes);
        while ($pre->fetch()){
            $a = array();
            foreach ($row as $key=>$val){
                $a[$key] = $val;
            }
            $results[] = $a;
        }
        $pre->close();
        return $results;
    }